package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("月小结报 DTO")
public class ReportMonthlyDto extends BaseDto {
    /**
     * id
     */
    String id;
    /**
     * 标题
     */
    @NotNull(message = "title不能为空") @Size(max = 255, message = "title最大255字符")
    String title;
    /**
     * 行政区域id
     */
    @NotNull(message = "areaId不能为空") @Size(max = 85, message = "areaId最大85字符")
    String areaId;
    /**
     * 行政区域名称
     */
    @NotNull(message = "areaName不能为空") @Size(max = 255, message = "areaName最大255字符")
    String areaName;
    /**
     * 行政区代码
     */
    @NotNull(message = "areaCode不能为空") @Size(max = 25, message = "areaCode最大25字符")
    String areaCode;
    /**
     * 填报日期
     */
    @JSONField(format = "yyyy-MM-dd")
    Date reportingDate;
    /**
     * 填报人id
     */
    Long reportingRiveruserId;
    /**
     * 填报人姓名
     */
    @Size(max = 255, message = "reportingRiveruserName最大255字符")
    String reportingRiveruserName;
    /**
     * 填报机构id
     */
    Long reportingOrgId;
    /**
     * 填报机构名称
     */
    @Size(max = 255, message = "reportingOrgName最大255字符")
    String reportingOrgName;
    /**
     * 印发批次(年)
     */
    @NotNull(message = "issuedBatchYear不能为空")
    Integer issuedBatchYear;
    /**
     * 印发批次(季度)
     */
    @NotNull(message = "issuedBatchQuarter不能为空")
    Integer issuedBatchQuarter;
    /**
     * 附件
     */
    @Size(max = 1255, message = "file最大1255字符")
    String file;
    /**
     * 发布状态
     */
    Integer state;
    /**
     * 备注
     */
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    /**
     * 版本号
     */
    Integer version;
    /**
     * 排序
     */
    Integer orderNo;
    /**
     * 删除标记
     */
    Integer delFlag;
    /**
     * 建立者id
     */
    Long createId;
    /**
     * 创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    /**
     * 更新时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;

}
